Industrial controllers are special-purpose computing devices utilized to automate real-world tasks with precision and efficiency. For instance, industrial controllers are utilized on manufacturing lines to aid in creation and packaging of a product. For example, industrial controllers are utilized in the manufacture of automobiles, creation of consumables (such as pharmaceuticals, food products, etc.), bottling of beverages, and any other suitable manufacturing task. To effectuate automation of such tasks, controllers are designed to receive input from sensors that are communicatively coupled to thereto and drive actuators that are also communicatively coupled thereto. More particularly, an industrial controller executes application specific code that is contained therein, wherein decisions are made based upon contents of the code as well as status of sensors and actuators coupled to the controller. Due to time-sensitivity associated with many manufacturing environments, industrial controllers can monitor sensors, scan code, and drive actuators quite expediently (e.g., near real-time).
As stated above, an industrial controller must be associated with code that causes the controller to act in a desirable manner given certain sensor and/or actuator states. Conventionally, such application code is written by a programmer and stored within a project file on a computer. The project file includes control system hardware configuration, definitions for data variables, and executable code. In order to simplify the management of the executable code the project file generally provides a facility to break the code into smaller more manageable components and provide a scheduling mechanism to determine when each module of code is to be executed by the controller. Throughout the project the programmer can associate text or description with various project components. For example, a project to be executed within an industrial controller can include numerous data variables, I/O modules, tasks, programs, routines, instructions and the like, and descriptive text can be associated with each of the aforementioned components, such that a programmer or user who later reviews the project can determine what a portion of the project is for and how such portion is operating.
Conventionally, the descriptive text is retained within a project file on a personal computer. When it is desirable for the project to execute within the controller, the personal computer can be coupled to the industrial controller by way of any suitable communications link, and the personal computer undertakes process of compiling, linking, and loading the project's hardware configuration, data variable definitions and source code onto the controller. If a programmer does not have the project file at hand, the controller's contents can be uploaded from the controller; however, the resulting uploaded project does not include data variable names, description regarding functionality, and/or other important descriptive information. In other words, a project without descriptive information can be so cryptic that it is not readily comprehendible by a programmer.